diff --git a/system/codeigniter/Common.php b/system/codeigniter/Common.php
index c7f9568..340be24 100644
--- a/system/codeigniter/Common.php
+++ b/system/codeigniter/Common.php
@@ -203,10 +203,10 @@
 * @access	public
 * @return	void
 */
-function show_error($message)
+function show_error($message, $status_code = 500)
 {
 	$error =& load_class('Exceptions');
-	echo $error->show_error('An Error Was Encountered', $message);
+	echo $error->show_error('An Error Was Encountered', $message, 'error_general', $status_code);
 	exit;
 }
 
@@ -252,6 +252,91 @@
 	$LOG->write_log($level, $message, $php_error);
 }
 
+
+/**
+ * Set HTTP Status Header
+ *
+ * @access	public
+ * @param	int 	the status code
+ * @param	string	
+ * @return	void
+ */
+function set_status_header($code = 200, $text = '')
+{
+	$stati = array(
+						200	=> 'OK',
+						201	=> 'Created',
+						202	=> 'Accepted',
+						203	=> 'Non-Authoritative Information',
+						204	=> 'No Content',
+						205	=> 'Reset Content',
+						206	=> 'Partial Content',
+
+						300	=> 'Multiple Choices',
+						301	=> 'Moved Permanently',
+						302	=> 'Found',
+						304	=> 'Not Modified',
+						305	=> 'Use Proxy',
+						307	=> 'Temporary Redirect',
+
+						400	=> 'Bad Request',
+						401	=> 'Unauthorized',
+						403	=> 'Forbidden',
+						404	=> 'Not Found',
+						405	=> 'Method Not Allowed',
+						406	=> 'Not Acceptable',
+						407	=> 'Proxy Authentication Required',
+						408	=> 'Request Timeout',
+						409	=> 'Conflict',
+						410	=> 'Gone',
+						411	=> 'Length Required',
+						412	=> 'Precondition Failed',
+						413	=> 'Request Entity Too Large',
+						414	=> 'Request-URI Too Long',
+						415	=> 'Unsupported Media Type',
+						416	=> 'Requested Range Not Satisfiable',
+						417	=> 'Expectation Failed',
+
+						500	=> 'Internal Server Error',
+						501	=> 'Not Implemented',
+						502	=> 'Bad Gateway',
+						503	=> 'Service Unavailable',
+						504	=> 'Gateway Timeout',
+						505	=> 'HTTP Version Not Supported'
+					);
+
+	if ($code == '' OR ! is_numeric($code))
+	{
+		show_error('Status codes must be numeric', 500);
+	}
+
+	if (isset($stati[$code]) AND $text == '')
+	{				
+		$text = $stati[$code];
+	}
+	
+	if ($text == '')
+	{
+		show_error('No status text available.  Please check your status code number or supply your own message text.', 500);
+	}
+	
+	$server_protocol = (isset($_SERVER['SERVER_PROTOCOL'])) ? $_SERVER['SERVER_PROTOCOL'] : FALSE;
+
+	if (substr(php_sapi_name(), 0, 3) == 'cgi')
+	{
+		header("Status: {$code} {$text}", TRUE);
+	}
+	elseif ($server_protocol == 'HTTP/1.1' OR $server_protocol == 'HTTP/1.0')
+	{
+		header($server_protocol." {$code} {$text}", TRUE, $code);
+	}
+	else
+	{
+		header("HTTP/1.1 {$code} {$text}", TRUE, $code);
+	}
+}
+
+
 /**
 * Exception Handler
 *
